home *** CD-ROM | disk | FTP | other *** search
/ Aminet 52 / Aminet 52 (2002)(GTI - Schatztruhe)[!][Dec 2002].iso / Aminet / docs / mags / saku20.lha / Teksti / Ohjelmointi.txt < prev    next >
Text File  |  1997-01-15  |  4KB  |  100 lines

  1. 2
  2. 1*
  3. {A        Järjestelmäohjelmoinnin alkeiskurssi - Osa 6: Loppuyhteenveto
  4. {A        -------------------------------------------------------------
  5.  
  6. {8                                  Sami Klemola
  7.  
  8.   
  9. Ohjelmointikurssimme on saapunut tiensä päähän.  Tämä  on  viimeinen  osa.  Otan
  10. käsittelyyn asiat, jotka olen aikaisemmissa osissa lykännyt,  ja  päätän  kaikki
  11. päät. Artikkelini ovat aina olleet yli 10 kilotavun mittaisia, mutta  tämä  vii-
  12. meinen juttuni tekee poikkeuksen. Käyn vain  läpi  nopeasti  asiat,  jotka  ovat
  13. jääneet roikkumaan. Aiemmin mainitsemani laiteohjaimen tekeminen  ei  kuulu  al-
  14. keiskurssin piiriin, vaan  se  jää  edistyneen  järjestelmäohjelmoinnin  kurssin
  15. asiaksi. Sellaista tosin ei näillä näkymillä ole tulossa. 
  16.  
  17. {DKirjasimet
  18.  
  19. Kurssin kolmososassa sivusin ikkunoita käsitellessäni kirjasimia. Nyt on vuoros-
  20. sa hieman lähempi tutustuminen aiheeseen. Kirjasindatahan säilytetään Fonts:-ha-
  21. kemistossa, joka tavallisesti on SYS:Fonts. Hakemistossa on jokaista  kirjasinta
  22. varten alihakemisto, jossa omissa tiedostoissaan sijaitsee  raaka  kirjasindata.
  23. Päähakemistossa on jokaista kirjasinta varten tiedosto, jossa se kuvaillaan.
  24.  
  25. Kirjasimia on kahdentyyppisiä, kiinteälevyisiä ja proportionaalisia. Järjestelmä
  26. käyttää useimpiin tarkoituksiin kiinteälevyisiä kirjasimia, mutta omat  ohjelmat
  27. voivat hyödyntää kirjasimia, joissa kirjaimet ovat erilevyisiä. Levyltä kirjasi-
  28. mia voi ladata diskfont.libraryn funktioilla sekä tiedustella, millaisia  kirja-
  29. simia on saatavilla.
  30.  
  31.  
  32. {6                                                                     ---------->
  33. Muistissa olevan kirjasimen voi avata  graphics.libraryn  OpenFont()-funktiolla.
  34. Se asetetaan käyttöön funktiolla SetFont() ja suljetaan lopuksi funktiolla  Clo-
  35. seFont(). Jos käytät levyllä olevaa kirjasinta esimerkiksi ikkunassa,  se  pitää
  36. avata ensin OpenDiskFont():lla ennen kuin ikkuna voidaan avata. 
  37.  
  38. {DHakemistot
  39.  
  40. Edellisestä osasta jäivät yli hakemistot. Niiden käsittely on tehokasta ja help-
  41. poa. Tässä yhteenveto dos.libraryn hakemistofunktioista: 
  42.  
  43. {Block = CreateDir("<nimi>")
  44.  
  45. Luo nykyiseen hakemistoon alihakemiston, jonka nimi  annetaan  parametrinä.  Pa-
  46. lauttaa lukon uuteen hakemistoon. 
  47.  
  48. {Bold = CurrentDir(lock)
  49.  
  50. Asettaa parametrinä annettuun lukkoon liittyvän hakemiston  nykyiseksi  hakemis-
  51. toksi (CD). Palauttaa edellisen nykyisen hakemiston lukon. Jos se  on  systeemin
  52. CD, pistä lukko talteen ja palauta se CD:ksi ennen poistumista ohjelmasta.  Muu-
  53. ten tulee outoja ilmiöitä, kun ruudulla lukee muuta ja CD onkin ihan  toisaalla.
  54. Kutsu vain lopuksi CurrentDir():iä sen ensimmäisellä kerralla palauttama osoite.
  55.  
  56. {Bplock = ParentDir(lock)
  57.  
  58. Parametrinä annetaan tiedoston tai hakemiston lukko ja  takaisin  saadaan  lukko
  59. sen äitihakemistoon (parent). Jos tätä funktiota kutsuu  juurella,  saa  nollan.
  60. Nollalukko tarkoittaa käytännössä kaikkien asemien äitiä, sitä asemaa, jolta ko-
  61. ne on bootattu. Nolla on siis - toisin kuin monessa muussa -  hyväksyttävä  arvo
  62. lukolle. 
  63. {BGetCurrentDirName(buffer,length)
  64.  
  65. Varaa puskuri ja anna sen osoite ja pituus parametreinä. Kutsun  jälkeen  pusku-
  66. rista löytyy nykyisen hakemiston  nimi.  Lukkoa  ei  siis  tarvita  tätä  kutsua
  67. käytettäessä. Hakemiston nimi kopioidaan prosessin CLI-struktuurista.  Jos  sitä
  68. ei ole, kutsu ei toimi. 
  69.  
  70. {Block = GetProgramDir()
  71.  
  72. Palauttaa lukon hakemistoon, josta ohjelmakoodi ladattiin. Tämän funktion avulla
  73. voit löytää ohjelman yhteydessä sijaitsevan asetustiedoston tai vastaavan.  Anna
  74. lukko CurrentDir():lle, niin voit avata tiedostoja ohjelmahakemistosta. GetProg-
  75. ramDir():n palauttamaa lukkoa ei tule avata. Vastaava SetProgramDir()-funktio on
  76. olemassa. Se asettaa ohjelman lukon. 
  77.  
  78. {Block = Lock(name,mode)
  79.  
  80. Lukitsee tiedoston tai hakemiston. Anna parametrinä kohteen nimi ja halutun  lu-
  81. kon moodi. Moodeja on kaksi, jaettu ja poissulkeva. 
  82.  
  83. {Bdlock = DupLock(lock)
  84.  
  85. Kahdentaa annetun lukon. Saat siis  toisen  lukon  samaan  kohteeseen.  Kumpikin
  86. pitää lopuksi vapauttaa. Alkuperäisen lukon täytyy olla  jaettu  (shared).  Dup-
  87. LockFromFH() antaa jaetun lukon tiedoston kahvasta. 
  88.  
  89. {BUnLock(lock)
  90.  
  91. Avaa lukon. Vapauttaa lukitun tiedoston tai hakemiston.
  92.  
  93. {DLoppusanat
  94.  
  95. Kas niin. Siinä se. Kurssi päättyy tähän. Lisätietoa ja  lisää  ohjelmointioppia
  96. saat autodocs-tiedostoista ja ROM Kernel Reference  -kirjoista.  Bokseista  saat
  97. paljon lähdekoodia opiskeltavaksi. Minä kiitän  seurasta  ja  toivotan  kaikille
  98. näkemiin.
  99.  
  100.